<#include "/@inc/funcMacros.ftl">
<#include "/@inc/copyright.txt">
<#assign className = TriaGram + "E" + Prefix + LateType>
<#assign baseName = TriaGram + Prefix + LateType>
<#assign intfName = TriaGram + "I" + Prefix + LateType>
<@pp.renameOutputFile name=className+".h">
</@pp.renameOutputFile>
//===================================================================
//
// ${className}.h
// Provide implementation to interface ${intfName}
//
//===================================================================
#ifndef ${className}_H
#define ${className}_H

#include "CATBaseUnknown.h"

class CATISpecObject_var ;
class CATListOfInt ;
class CATListDouble ;
class CATListOfCATUnicodeString ;
class CATListValCATISpecObject_var ;

/**
 * Class extending the NEOPixElement component.
 * <br>
 * It implements the interface
 * @see ${baseName}InterfacesFw.${intfName}
 */
class ${className} : public CATBaseUnknown
{
    CATDeclareClass;

    public:
    //----------------------------------------------------------------
    NEOEPixElement();
    virtual ~NEOEPixElement();

  <#list Attributes as attrib>
  <#if attrib.type?starts_with("tklist") >
    <@ADD_LIST_FUNC_DECL attr=attrib pvirtual ="n"/>
  <#else>
    <@ADD_FUNC_DECL attr=attrib pvirtual ="n"/>
  </#if>
  </#list>
	
};
#endif
